From ac2cba2901779f66bbfab298faa15c956e91393a Mon Sep 17 00:00:00 2001 From: Julien Grall Date: Mon, 10 Mar 2014 14:40:50 +0100 Subject: [PATCH] xmalloc: handle correctly page allocation when align > size When align is superior to size, we need to retrieve the order from align during multiple page allocation. I guess it was the goal of the commit fb034f42 "xmalloc: make close-to-PAGE_SIZE allocations more efficient". Signed-off-by: Julien Grall Acked-by: Keir Fraser --- xen/common/xmalloc_tlsf.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/xen/common/xmalloc_tlsf.c b/xen/common/xmalloc_tlsf.c index d3bdfa7d57..a5769c9d3e 100644 --- a/xen/common/xmalloc_tlsf.c +++ b/xen/common/xmalloc_tlsf.c @@ -527,11 +527,10 @@ static void xmalloc_pool_put(void *p) static void *xmalloc_whole_pages(unsigned long size, unsigned long align) { - unsigned int i, order = get_order_from_bytes(size); + unsigned int i, order; void *res, *p; - if ( align > size ) - get_order_from_bytes(align); + order = get_order_from_bytes(max(align, size)); res = alloc_xenheap_pages(order, 0); if ( res == NULL ) -- 2.30.2